package com.canyou.enums;

import lombok.Getter;

import java.util.Arrays;

/**
 * 资源访问类型(1.公开,2.私有,3.授权)
 *
 * @author fy
 * @date 20/05/13 15:26
 */
@Getter
public enum MediaAccessTypeEnum {

    /**
     * 公开
     */
    PUBLIC(1, "公开"),

    /**
     * 私有
     */
    PRIVATE(2, "私有"),

    /**
     * 授权
     */
    AUTH(3, "授权"),

    ;

    /**
     * 根据 枚举类型值 获取对应类型枚举
     *
     * @param value
     * @return
     */
    public static MediaAccessTypeEnum valueOf(final Integer value) {
        return Arrays.stream(MediaAccessTypeEnum.values())
                .filter(enu -> enu.getValue().equals(value))
                .findFirst()
                .orElseThrow(() -> new RuntimeException("错误的资源访问类型"));
    }

    public static MediaAccessTypeEnum nameOf(final String name) {
        return Arrays.stream(MediaAccessTypeEnum.values())
                .filter(enu -> enu.getName().equals(name))
                .findFirst()
                .orElseThrow(() -> new RuntimeException("错误的资源访问类型"));
    }

    public static String getName(final Integer value) {
        return MediaAccessTypeEnum.valueOf(value).getName();
    }

    MediaAccessTypeEnum(Integer value, String name) {
        this.value = value;
        this.name = name;
    }

    private Integer value;
    private String name;
}
